Questão 14 - HCPA 2009/4 - ANALISTA DE SISTEMAS I (ADMINISTRADOR DE BANCO DE DADOS)

questão 14 sql plus oracle 9i

Veja abaixo a resposta correta da questão e uma breve análise sobre o conteúdo.

Considere a questão abaixo com base em seus conhecimentos de SQLPLUS do banco de dados Oracle 9i. 

Suponha que você atualizou a tabela tbl_produto, acrescentando 10% ao PRECO de todos os produtos desta tabela, 

mas, por uma solicitação de seu gerente, você precisa restaurar o PRECO dos produtos que têm QUANTIDADE 

menor ou igual a 10. Antes de fazer as alterações na tbl_produto, você criou uma tabela tbl_produto_arm como 

cópia de segurança. 

SQL> desc tbl_produto 

Name Type 

#cod number 

descricao varchar2(50) 

preco number(10,2) 

quantidade number(7)

Analisando a estrutura acima, qual deve ser o comando necessário para atender à solicitação da gerência? 

(A) update tbl_produto p1 

 set p1.preco = (select p2.preco from tbl_produto_arm p2 

where p2.quantidade <= 10) 

where p1.cod = p2.cod; 

(B) update tbl_produto p1 

 set p1.preco = (select p2.preco from tbl_produto_arm p2 

where p1.cod = p2.cod and p2.quantidade <= 10); 

(C) update tbl_produto p1 

 set p1.preco = p2.preco 

where p1.cod in (select p2.cod from tbl_produto_arm p2 

where p2.quantidade <= 10); 

(D) update tbl_produto p1 

 set p1.preco = (select p2.preco from tbl_produto_arm p2 

where p1.cod = p2.cod) 

where p1.quantidade <= 10; 

(E) update tbl_produto p1, tbl_produto_arm p2 

 set p1.preco = p2.preco 

where p1.cod = p2.cod 

 and p1.quantidade <= 10;

Desafio de SQLPLUS: Restauração do Preço dos Produtos

Nesta questão, analisaremos uma situação envolvendo o SQL PLUS no banco de dados Oracle 9i. O objetivo é restaurar os preços dos produtos que têm uma quantidade igual ou inferior a 10, com base em uma tabela de backup chamada tbl_produto_arm.

Descrição da Questão:

Suponha que a tabela tbl_produto tenha sido atualizada, aumentando o preço de todos os produtos em 10%. Agora, a gerência solicitou a restauração dos preços dos produtos que têm uma quantidade menor ou igual a 10. Antes de realizar qualquer alteração na tabela tbl_produto, foi criada uma tabela de backup chamada tbl_produto_arm.

A estrutura da tabela tbl_produto é a seguinte:

SQL> desc tbl_produto 

Name       Type 

#cod       number 

descricao  varchar2(50) 

preco      number(10,2) 

quantidade number(7)

Resposta Correta:

Na alternativa (D), a subconsulta busca o preço correspondente na tabela de backup tbl_produto_arm com base no código, e a cláusula where principal limita a atualização apenas para os produtos que têm quantidade menor ou igual a 10 na tabela tbl_produto.

update tbl_produto p1 

set p1.preco = (select p2.preco from tbl_produto_arm p2 

where p1.cod = p2.cod) 

where p1.quantidade <= 10;

Portanto, a alternativa (D) está correta, pois atende aos requisitos da questão, restaurando os preços apenas para os produtos que têm quantidade menor ou igual a 10.

Justificativa:

Na alternativa (A), a subconsulta busca o preço correspondente na tabela de backup tbl_produto_arm com base na quantidade, o que não atende ao requisito da questão. Além disso, a comparação de p1.cod = p2.cod está correta, mas o critério de seleção do preço está baseado na quantidade, não no código.

Na alternativa (B), a subconsulta busca o preço correspondente na tabela de backup tbl_produto_arm com base no código e na quantidade, mas a cláusula where principal está ausente, o que faz com que a atualização seja feita para todos os registros da tabela tbl_produto.

Na alternativa (C), a atualização é realizada com base no código presente na tabela de backup tbl_produto_arm, mas o critério de seleção está baseado apenas na quantidade, o que não atende ao requisito da questão. Além disso, a cláusula in pode resultar em atualização incorreta, pois não garante a correspondência exata entre os códigos das duas tabelas.

Na alternativa (E), a atualização é feita corretamente com base na correspondência dos códigos entre as duas tabelas, mas não leva em consideração que os preços devem ser restaurados com base na tabela de backup tbl_produto_arm.

Portanto, todas as alternativas têm algum problema em relação aos critérios de seleção dos preços para restauração ou na forma como são aplicadas as cláusulas where e set.

Assunto Principal da Questão:

SQLPLUS no contexto de atualização de tabelas com base em subconsultas e condições.

Assuntos a Estudar:

Utilização de subconsultas em SQLPLUS.

Atualização de tabelas com base em condições específicas.

Uso de backups para restauração de dados.

Nível de Dificuldade:

Moderado. Requer compreensão das estruturas de consulta e atualização de tabelas no SQLPLUS.

Resposta no Oracle 12c:

A resposta provavelmente seria a mesma no Oracle 12c, já que as estruturas e funcionalidades do SQLPLUS não costumam mudar significativamente entre versões. No entanto, é sempre importante verificar a documentação específica da versão para confirmar a sintaxe e os recursos disponíveis.

Quer acompanhar as novidade do site?

Leia mais em: iretoaoponto-tech.com.br/conc...

Questão 14 - HCPA 2009/4 - ANALISTA DE SISTEMAS I (ADMINISTRADOR DE BANCO DE DADOS)

Última atualização: 2024-02-23

Quer acompanhar as novidade do site?
Veja também:

Como remover caracteres especiais no mysql?

remover caracteres especiais mysql

Como alterar senha do root no mysql?

alterar senha root mysql

Questão 11 - HCPA 2011 - ANALISTA DE SISTEMAS I (ADMINISTRADOR DE BANCO DE DADOS E SEGURANÇA DA INFORMAÇÃO)

questão 11 comandos sql oracle 10g

Como alterar nome da tabela no MySQL?

Alterar nome de tabela mysql

Questão 12 - HCPA 2011 - ANALISTA DE SISTEMAS I (ADMINISTRADOR DE BANCO DE DADOS E SEGURANÇA DA INFORMAÇÃO)

questão 12 PLSQL package

Questão 2 - HCPA 2020 - ANALISTA DE TI (DESENVOLVIMENTO)

questão 2 condicional plsql

Web Stories